package timeseries

import (
	
	
	
	
	
	
)

// WithPrometheusTarget adds a prometheus query to the graph.
func ( string,  ...prometheus.Option) Option {
	 := prometheus.New(, ...)

	return func( *TimeSeries) error {
		.Builder.AddTarget(&sdk.Target{
			RefID:          .Ref,
			Hide:           .Hidden,
			Expr:           .Expr,
			IntervalFactor: .IntervalFactor,
			Interval:       .Interval,
			Step:           .Step,
			LegendFormat:   .LegendFormat,
			Instant:        .Instant,
			Format:         .Format,
		})

		return nil
	}
}

// WithGraphiteTarget adds a Graphite target to the table.
func ( string,  ...graphite.Option) Option {
	 := graphite.New(, ...)

	return func( *TimeSeries) error {
		.Builder.AddTarget(.Builder)

		return nil
	}
}

// WithInfluxDBTarget adds an InfluxDB target to the graph.
func ( string,  ...influxdb.Option) Option {
	 := influxdb.New(, ...)

	return func( *TimeSeries) error {
		.Builder.AddTarget(.Builder)

		return nil
	}
}

// WithStackdriverTarget adds a stackdriver query to the graph.
func ( *stackdriver.Stackdriver) Option {
	return func( *TimeSeries) error {
		.Builder.AddTarget(.Builder)

		return nil
	}
}

// WithLokiTarget adds a loki query to the graph.
func ( string,  ...loki.Option) Option {
	 := loki.New(, ...)

	return func( *TimeSeries) error {
		.Builder.AddTarget(&sdk.Target{
			Hide:         .Hidden,
			Expr:         .Expr,
			LegendFormat: .LegendFormat,
		})

		return nil
	}
}